home *** CD-ROM | disk | FTP | other *** search
- -- Solid rectangle
- -- Sets an area of the map to a specified block
-
- function main ()
- local w = mappy.getValue(mappy.MAPWIDTH)
- local h = mappy.getValue(mappy.MAPHEIGHT)
-
- if (w == 0) then
- mappy.msgBox ("Solid rectangle", "You need to load or create a map first", mappy.MMB_OK, mappy.MMB_ICONINFO)
- else
-
- local isok,rx,ry,rw,rh = mappy.doDialogue ("Solid rectangle", "Enter x,y,width,height", "0,0,10,10", mappy.MMB_DIALOGUE2)
- if isok == mappy.MMB_OK then
-
- rx = tonumber (rx)
- ry = tonumber (ry)
- rw = tonumber (rw)
- rh = tonumber (rh)
-
- if (rx < 0 or (rx+rw) >= w or ry < 0 or (ry+rh) >= h) then
- mappy.msgBox ("Solid rectangle", "A value was out of bounds, rectangle not drawn", mappy.MMB_OK, mappy.MMB_ICONINFO)
- else
-
- local blk = mappy.getValue (mappy.CURANIM)
- if (blk == -1) then
- blk = mappy.getValue (mappy.CURBLOCK)
- else
- -- setBlock need anims in the format below (ie: anim 1 should be a value of -2)
- blk = -(blk+1)
- end
-
- mappy.copyLayer(mappy.getValue(mappy.CURLAYER),mappy.MPY_UNDO)
-
- local y = ry
- while y < (ry+rh) do
- local x = rx
- while x < (rx+rw) do
- mappy.setBlock (x, y, blk)
- x = x + 1
- end
- y = y + 1
- end
-
- mappy.updateScreen()
-
- end
- end
- end
- end
-
- test, errormsg = pcall( main )
- if not test then
- mappy.msgBox("Error ...", errormsg, mappy.MMB_OK, mappy.MMB_ICONEXCLAMATION)
- end
-